//
// File: sparse.h
//
// MATLAB Coder version            : 5.4
// C/C++ source code generated on  : 27-Mar-2025 11:51:36
//

#ifndef SPARSE_H
#define SPARSE_H

// Include Files
#include "rtwtypes.h"
#include "coder_array.h"
#include <cstddef>
#include <cstdlib>

// Type Definitions
namespace coder {
class sparse {
public:
  void ctranspose(sparse *y) const;
  void mtimes(const sparse *b, sparse *c) const;
  void times(double a, sparse *s) const;
  void plus(const sparse *b, sparse *s) const;
  void inv(sparse *y) const;
  void b_minus(const sparse *b, sparse *s) const;
  void fillIn();
  static void b_realloc(sparse *b_this, int numAllocRequested, int ub1, int lb2,
                        int ub2, int offs);

private:
  static void allocEqsizeBinop(const sparse *a, const sparse *b, int sn, int sm,
                               sparse *s);
  void b_fillIn();
  static void sparseSparseRowExpandBinOp(const sparse *rowA, const sparse *b,
                                         sparse *s, boolean_T expandB);
  static void b_sparseSparseRowExpandBinOp(const sparse *rowA, const sparse *b,
                                           sparse *s, boolean_T expandB);
  static void c_sparseSparseRowExpandBinOp(const sparse *rowA, const sparse *b,
                                           sparse *s);
  static void d_sparseSparseRowExpandBinOp(const sparse *rowA, const sparse *b,
                                           sparse *s);
  static void e_sparseSparseRowExpandBinOp(const sparse *rowA, const sparse *b,
                                           sparse *s);
  static void f_sparseSparseRowExpandBinOp(const sparse *rowA, const sparse *b,
                                           sparse *s);

public:
  array<double, 1U> d;
  array<int, 1U> colidx;
  array<int, 1U> rowidx;
  int m;
  int n;
  int maxnz;
};

class b_sparse {
public:
  array<double, 1U> d;
  array<int, 1U> colidx;
  array<int, 1U> rowidx;
  int m;
};

} // namespace coder

#endif
//
// File trailer for sparse.h
//
// [EOF]
//
